<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>eval函数</title>
</head>
<body>
    <script type="text/javascript">
        // eval 函数的作用
        //     将字符串当做一段 JS 代码解释并执行
        window.eval("var i = 100;");
        alert(i); // 100

        // java 连接数据库, 查询数据库之后,
        // 将数据在 java 程序中拼接成 JSON 格式的"字符串"
        // 将 JSON 格式的字符串响应到浏览器
        // 也就是说, java 响应到浏览器上的数据仅仅是一个 "JSON格式的字符串"
        // 还不是一个 JSON 对象, 此时通过 eval 函数将 JSON 格式的字符串转换为 JSON 对象

        // 下面模拟上述过程, fromJava 代表从 java 端响应的内容
        var fromJava = "{\"sno\":\"110\",\"sname\":\"张三\",\"sex\":\"男\"}";
        // 将以上的 JSON 格式的"字符串"转换为 JSON 对象
        window.eval("var jsonObj = " + fromJava);
        // 访问 JSON 对象
        alert(jsonObj.sname + "," + jsonObj.sno + "," + jsonObj.sex);

        // 上述例子说明, JSON 配合 eval("JSON格式的字符串") 可以起到前后端交互的作用
    </script>
</body>
</html>